package org.NooLab.glue.subscription;

import java.util.Vector;

import org.NooLab.compare.utilities.math.DistanceControlProperties;
import org.NooLab.glue.subscription.context.ContextIntf;

public interface FutureIntf {

	/** simple set  */
	public void addProperty( String subscriptLabel, String[] values ) ;
	
	/** item set with excluding items */
	public void addProperty( String subscriptLabel, String[] itemvalues, String[] exclitemvalues, double minimalMatch  ) ;
	
	/** feature vector */
	public void addProperty( String subscriptLabel, String[] features, double[] values, double minimalMatch  ) ;
	
	/** feature vector with excluding features, for dynamic use contexts */
	public void addProperty( String subscriptLabel, 
							 String[] features, double[] values, String[] exclitemvalues, 
							 double minimalMatch, double minimalSimilarity  ) ;

	
	/** full context */
	public void addProperty( String subscriptLabel, ContextIntf context ) ;


	/** for full text templates; by default comparison will be statistical and set oriented ;
	 *  it is possible to provide the ID of a specialized processor (such like a particular SOM-area) 
	 *  which then will be used by the MessageBoard ;
	 *  The processorGuid will be used to match from the set of available RECEPTORs */
	public void addProperty( String subscriptLabel, String fulltext, String[] exclitemvalues, double minimalMatch, String textprocessorGUID ) ;
	
	
	public void addProperty( String subscriptLabel, byte[] imageBytes ) ;
	
	
	// ----------------------------------------------
	
	public Vector<FutureProperties> getProperties() ;
	
	public ContextIntf getContext();
	
	// ----------------------------------------------
	
	public void setGuid(String guidStr);
	
	public String getGuid();

	public void setInstanceID( long iid);
	
	public long getInstanceID();

	public void setDistanceControlProperties( DistanceControlProperties distanceCtrl );

	
	
	
	
}
